Lua枚举
AccessingEnum.cs
    using UnityEngine;
    using System;
    using LuaInterface;
    public class AccessingEnum : MonoBehaviour 
    {
        string script =
            @"
                space = nil
                function TestEnum(e)        
                    print('Enum is:'..tostring(e))        
                    if space:ToInt() == 0 then
                        print('enum ToInt() is ok')                
                    end
                    if not space:Equals(0) then
                        print('enum compare int is ok')                
                    end
                    if space == e then
                        print('enum compare enum is ok')
                    end
                    local s = UnityEngine.Space.IntToEnum(0)
                    if space == s then
                        print('IntToEnum change type is ok')
                    end
                end
                function ChangeLightType(light, type)
                    print('change light type to Directional')
                    light.type = UnityEngine.LightType.Directional
                end
            ";
        void Start () 
        {
            LuaState state = new LuaState();
            state.Start();
            LuaBinder.Bind(state);
            state.DoString(script);
            state["space"] = Space.World;
            LuaFunction func = state.GetFunction("TestEnum");
            func.BeginPCall();
            func.Push(Space.World);
            func.PCall();
            func.EndPCall();
            func.Dispose();
            func = null;
            GameObject go = GameObject.Find("/Light");
            Light light = go.GetComponent<Light>();
            func = state.GetFunction("ChangeLightType");
            func.BeginPCall();
            func.Push(light);
            func.Push(LightType.Directional);
            func.PCall();
            func.EndPCall();
            func.Dispose();
            func = null;
            state.CheckTop();
            state.Dispose();
            state = null;
        }
    }
🔚